<!DOCTYPE html>
<html lang="en">
<head prefix="og: http://ogp.me/ns#">
  <meta charset="utf-8">
  <title>starRTC文档</title>
  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- Canonical links -->
  <link rel="canonical" href="https://starrtc.gitee.io/en/docs/aec-channel.html">
  <!-- Alternative links -->
  
    
      <link rel="alternative" hreflang="en" href="https://starrtc.gitee.io/docs/aec-channel.html">
    
      <link rel="alternative" hreflang="zh-cn" href="https://starrtc.gitee.io/zh-cn/docs/aec-channel.html">
    
  
  <!-- Icon -->
  <link rel="apple-touch-icon" sizes="57x57" href="/icon/apple-touch-icon-57x57.png">
  <link rel="apple-touch-icon" sizes="114x114" href="/icon/apple-touch-icon-114x114.png">
  <link rel="apple-touch-icon" sizes="72x72" href="/icon/apple-touch-icon-72x72.png">
  <link rel="apple-touch-icon" sizes="144x144" href="/icon/apple-touch-icon-144x144.png">
  <link rel="apple-touch-icon" sizes="60x60" href="/icon/apple-touch-icon-60x60.png">
  <link rel="apple-touch-icon" sizes="120x120" href="/icon/apple-touch-icon-120x120.png">
  <link rel="apple-touch-icon" sizes="76x76" href="/icon/apple-touch-icon-76x76.png">
  <link rel="apple-touch-icon" sizes="152x152" href="/icon/apple-touch-icon-152x152.png">
  <link rel="icon" type="image/png" href="/icon/favicon-196x196.png" sizes="196x196">
  <link rel="icon" type="image/png" href="/icon/favicon-160x160.png" sizes="160x160">
  <link rel="icon" type="image/png" href="/icon/favicon-96x96.png" sizes="96x96">
  <link rel="icon" type="image/png" href="/icon/favicon-16x16.png" sizes="16x16">
  <link rel="icon" type="image/png" href="/icon/favicon-32x32.png" sizes="32x32">
  <meta name="msapplication-TileColor" content="#2f83cd">
  <meta name="msapplication-TileImage" content="/icon/mstile-144x144.png">
  <!-- CSS -->
  <!-- build:css build/css/navy.css -->
  <link rel="stylesheet" href="/css/navy.css">
  <!-- endbuild -->
  <link href="https://starrtc.gitee.io/googleapis.css" rel="stylesheet" type="text/css">
 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css">
  <!-- RSS -->
  <link rel="alternate" href="/atom.xml" title="starRTC文档">
  <!-- Open Graph -->
  <meta name="description" content="Stream event notificationEvent notification related to audio and video channels 1 Create GLOBAL_PUBLIC CHANNEL&amp;#123;&quot;action&quot;:&quot;AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC&quot;,&quot;userId&quot;:&quot;xxx&quot;,&quot;roomId&quot;:&quot;xxx&quot;,&quot;chan">
<meta property="og:type" content="website">
<meta property="og:title" content="starRTC文档">
<meta property="og:url" content="https://starrtc.gitee.io/en/docs/aec-channel.html">
<meta property="og:site_name" content="starRTC文档">
<meta property="og:description" content="Stream event notificationEvent notification related to audio and video channels 1 Create GLOBAL_PUBLIC CHANNEL&amp;#123;&quot;action&quot;:&quot;AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC&quot;,&quot;userId&quot;:&quot;xxx&quot;,&quot;roomId&quot;:&quot;xxx&quot;,&quot;chan">
<meta property="og:locale" content="en">
<meta property="og:updated_time" content="2020-09-06T00:27:31.345Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="starRTC文档">
<meta name="twitter:description" content="Stream event notificationEvent notification related to audio and video channels 1 Create GLOBAL_PUBLIC CHANNEL&amp;#123;&quot;action&quot;:&quot;AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC&quot;,&quot;userId&quot;:&quot;xxx&quot;,&quot;roomId&quot;:&quot;xxx&quot;,&quot;chan">
<meta name="twitter:site" content="hexojs">
<meta property="fb:admins" content="100000247608790">
  <!-- Google Analytics -->
  
</head>

<body>
  <div id="container">
    <header id="header" class="wrapper">
  <div id="header-inner" class="inner">
    <h1 id="logo-wrap">
      
      <a href="https://starrtc.gitee.io/" id="logo">starRTC</a>
    </h1>
    <nav id="main-nav">
      <a href="https://starrtc.gitee.io/" class="main-nav-link">Home</a><a href="https://blog.starRTC.com" class="main-nav-link">Blog</a><a href="https://github.com/starrtc/android-demo/issues" class="main-nav-link">Forum</a><a href="/en/docs/" class="main-nav-link">Docs</a><a href="/en/download/" class="main-nav-link">Download</a><a href="/en/contact/" class="main-nav-link">Contact</a>
      
    </nav>
    <div id="lang-select-wrap">
      <label id="lang-select-label"><i class="fa fa-globe"></i><span>English</span></label>
      <select id="lang-select" data-canonical="docs/aec-channel.html">
        
          <option value="en" selected>English</option>
        
          <option value="zh-cn">简体中文</option>
        
      </select>
    </div>
    <a id="mobile-nav-toggle">
      <span class="mobile-nav-toggle-bar"></span>
      <span class="mobile-nav-toggle-bar"></span>
      <span class="mobile-nav-toggle-bar"></span>
    </a>
  </div>
</header>

    <div id="content-wrap">
  <div id="content" class="wrapper">
    <div id="content-inner">
      <article class="article-container" itemscope itemtype="http://schema.org/Article">
        <div class="article-inner">
          <div class="article">
            <div class="inner">
              <header class="article-header">
                <h1 class="article-title" itemprop="name"></h1>
                <a href="https://github.com/starRTC/docs/edit/master/en/docs/aec-channel.md" class="article-edit-link" title="Improve this doc"><i class="fa fa-pencil"></i></a>
              </header>
              <div class="article-content" itemprop="articleBody">
                <h1 id="Stream-event-notification" class="article-heading"><a href="#Stream-event-notification" class="headerlink" title="Stream event notification"></a>Stream event notification<a class="article-anchor" href="#Stream-event-notification" aria-hidden="true"></a></h1><p>Event notification related to audio and video channels</p>
<h2 id="1-Create-GLOBAL-PUBLIC-CHANNEL" class="article-heading"><a href="#1-Create-GLOBAL-PUBLIC-CHANNEL" class="headerlink" title="1 Create GLOBAL_PUBLIC CHANNEL"></a>1 Create GLOBAL_PUBLIC CHANNEL<a class="article-anchor" href="#1-Create-GLOBAL-PUBLIC-CHANNEL" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"roomId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"conCurrentNumber"</span>:<span class="string">"200"</span>,<span class="string">"extra"</span> : <span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>If you create<font color="red">global</font>cahnnel，Uploaders need to log in，Viewers do not need to log in or have other permissions to watch the view。<br>userId：            User ID for applying to create a channel<br>roomId：               The chat room ID corresponding to this channel. If there is no chat function, there is no roomId parameter.<br>channelId：        cahneel ID<br>conCurrentNumber： Maximum number of people in this room<br>extra：            (Optional) Custom data sent from the client SDK</p>
<h2 id="2-Create-LOGIN-PUBLIC-CHANNEL" class="article-heading"><a href="#2-Create-LOGIN-PUBLIC-CHANNEL" class="headerlink" title="2 Create LOGIN_PUBLIC CHANNEL"></a>2 Create LOGIN_PUBLIC CHANNEL<a class="article-anchor" href="#2-Create-LOGIN-PUBLIC-CHANNEL" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_CREATE_CHANNEL_LOGIN_PUBLIC"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"roomId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"conCurrentNumber"</span>:<span class="string">"200"</span>,<span class="string">"extra"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>If you create the channel <font color="red">which is only visible to logged in users</font> ，Uploaders and viewers need to log in to participate or watch.<br>userId：            User ID for applying to create a channel<br>roomId：            The chat room ID corresponding to this channel. If there is no chat function, there is no roomId parameter.<br>conCurrentNumber：  Maximum number of people in this room<br>extra：            (Optional) Custom data sent from the client SDK</p>
<h2 id="3-Create-GROUP-PUBLIC-CHANNEL" class="article-heading"><a href="#3-Create-GROUP-PUBLIC-CHANNEL" class="headerlink" title="3 Create GROUP_PUBLIC CHANNEL"></a>3 Create GROUP_PUBLIC CHANNEL<a class="article-anchor" href="#3-Create-GROUP-PUBLIC-CHANNEL" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_CREATE_CHANNEL_GROUP_PUBLIC"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"groupId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"extra"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>If you create a channel <font color="red">that can only be viewed in the group </font>. Uploaders and viewers are required to participate or watch in this group.<br>userId：            User ID for applying to create a channel<br>roomId：            The chat room ID corresponding to this channel. If there is no chat function, there is no roomId parameter.<br>conCurrentNumber：  Maximum number of people in this room<br>extra：            (Optional) Custom data sent from the client SDK</p>
<h2 id="4-Apply-for-upload" class="article-heading"><a href="#4-Apply-for-upload" class="headerlink" title="4 Apply for upload"></a>4 Apply for upload<a class="article-anchor" href="#4-Apply-for-upload" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_APPLY_UPLOAD_CHANNEL"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x","data":&#123;"conCurrentNumber":"xxx","groupId(optional)":"xxxx"&#125;&#125;</span></span><br></pre></td></tr></table></figure>
<p>Apply to upload audio and video streams<br>userId:     the user ID of who applying for upload</p>
<p>In the json of the returned data field, conCurrentNumber represents the maximum number of people in the channel. If the channelId type is group live (AEC_LIVE_CREATE_CHANNEL_GROUP_PUBLIC), the corresponding groupId also needs to be returned.</p>
<h2 id="5-Set-the-uploader" class="article-heading"><a href="#5-Set-the-uploader" class="headerlink" title="5 Set the uploader"></a>5 Set the uploader<a class="article-anchor" href="#5-Set-the-uploader" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_SET_CHANNEL_UPLOADER"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>The broadcaster applies to set the upload permission of a user. If it is a public (AEC_LIVE_CREATE_CHANNEL_GLOBAL_PUBLIC) type of room, the user only needs to log in to apply for uploading, which does not need the broadcaster to give the permission. If it is another type of room. It needs that the broadcaster assigns the user to the uploader actively, then the uploader can apply for upload.<br>userId: User ID of who needs to set upload permissions.</p>
<h2 id="6-Cancel-the-upload-permission" class="article-heading"><a href="#6-Cancel-the-upload-permission" class="headerlink" title="6 Cancel the upload permission"></a>6 Cancel the upload permission<a class="article-anchor" href="#6-Cancel-the-upload-permission" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_UNSET_CHANNEL_UPLOADER"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>The broadcaster requests to cancel the upload permission of a user.<br>userId:     User ID that needs to cancel the upload permission.</p>
<h2 id="7-Uploader-disconnect-Leave-away" class="article-heading"><a href="#7-Uploader-disconnect-Leave-away" class="headerlink" title="7 Uploader disconnect (Leave away)"></a>7 Uploader disconnect (Leave away)<a class="article-anchor" href="#7-Uploader-disconnect-Leave-away" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_UPLOADER_DISCONNECT"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>userId:     The user ID who wants to disconnect.</p>
<h2 id="8-Uploader-is-uploading" class="article-heading"><a href="#8-Uploader-is-uploading" class="headerlink" title="8 Uploader is uploading"></a>8 Uploader is uploading<a class="article-anchor" href="#8-Uploader-is-uploading" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span> : <span class="string">"AEC_LIVE_UPLOADER_UPLOADING"</span>,<span class="string">"userId"</span> : <span class="string">"xxx"</span>,<span class="string">"channelId"</span> : <span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>The uploader is uploading, which is called once every minute, and the return value will be determined by the business logic. If the user balance is insufficient, the user can be terminated uploading by this event.<br>userId:     the user who is uploading</p>
<h2 id="9-Close-audio-and-video-stream" class="article-heading"><a href="#9-Close-audio-and-video-stream" class="headerlink" title="9 Close audio and video stream"></a>9 Close audio and video stream<a class="article-anchor" href="#9-Close-audio-and-video-stream" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_CLOSE_CHANNEL"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>The user requests to close the audio and video stream.<br>userId:     The user ID of who requests to close the audio and video stream</p>
<h2 id="10-Delete-audio-and-video-streams" class="article-heading"><a href="#10-Delete-audio-and-video-streams" class="headerlink" title="10 Delete audio and video streams"></a>10 Delete audio and video streams<a class="article-anchor" href="#10-Delete-audio-and-video-streams" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_DELETE_CHANNEL"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>&#125;</span><br><span class="line"><span class="comment">//return &#123;"status":"x"&#125;</span></span><br></pre></td></tr></table></figure>
<p>The user requests to delete the audio and video stream.<br>userId:     the user ID Who requests to delete the audio and video stream</p>
<h2 id="11-The-user-starts-watching" class="article-heading"><a href="#11-The-user-starts-watching" class="headerlink" title="11 The user starts watching"></a>11 The user starts watching<a class="article-anchor" href="#11-The-user-starts-watching" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_USER_ONLINE"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"time"</span>:<span class="string">"xxx"</span>&#125;</span><br></pre></td></tr></table></figure>
<p>User balances can be checked in this event.</p>
<h2 id="12-It-be-called-once-a-minute-when-the-user-watch-the-video" class="article-heading"><a href="#12-It-be-called-once-a-minute-when-the-user-watch-the-video" class="headerlink" title="12 It be called once a minute when the user watch the video."></a>12 It be called once a minute when the user watch the video.<a class="article-anchor" href="#12-It-be-called-once-a-minute-when-the-user-watch-the-video" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_USER_PLAYING"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"time"</span>:<span class="string">"xxx"</span>,<span class="string">"discharge"</span>:<span class="string">"xxx"</span>&#125;</span><br></pre></td></tr></table></figure>
<p>This event is called back every minute to inform the user that they are watching audio and video.<br>User balances can be checked in this event. If the balance is not enough, you can prevent users from continuing to watch.</p>
<p>Discharge represents the bytes of traffic consumed in one minute .</p>
<h2 id="13-A-User-stop-watching" class="article-heading"><a href="#13-A-User-stop-watching" class="headerlink" title="13 A User stop watching"></a>13 A User stop watching<a class="article-anchor" href="#13-A-User-stop-watching" aria-hidden="true"></a></h2><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span>:<span class="string">"AEC_LIVE_USER_OFFLINE"</span>,<span class="string">"userId"</span>:<span class="string">"xxx"</span>,<span class="string">"channelId"</span>:<span class="string">"xxx"</span>,<span class="string">"time"</span>:<span class="string">"xxx"</span>,<span class="string">"discharge"</span>:<span class="string">"xxx"</span>&#125;</span><br></pre></td></tr></table></figure>
<h2 id="14-Create-LOGIN-SPECIFY-CHANNEL" class="article-heading"><a href="#14-Create-LOGIN-SPECIFY-CHANNEL" class="headerlink" title="14 Create LOGIN_SPECIFY CHANNEL"></a>14 Create LOGIN_SPECIFY CHANNEL<a class="article-anchor" href="#14-Create-LOGIN-SPECIFY-CHANNEL" aria-hidden="true"></a></h2><p>Not yet open<br><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span> : <span class="string">"AEC_LIVE_CREATE_CHANNEL_LOGIN_SPECIFY"</span>,<span class="string">"userId"</span> : <span class="string">"xxx"</span>,<span class="string">"roomId"</span> : <span class="string">"xxx"</span>, <span class="string">"channelId"</span> : <span class="string">"xxx"</span>,<span class="string">"conCurrentNumber"</span> : <span class="string">"200"</span>,<span class="string">"extra(可选)"</span> : <span class="string">"xxxx"</span>,<span class="string">"specify"</span> : <span class="string">"xxxx"</span>&#125;</span><br></pre></td></tr></table></figure></p>
<h2 id="15-Create-GROUP-SPECIFY-CHANNEL" class="article-heading"><a href="#15-Create-GROUP-SPECIFY-CHANNEL" class="headerlink" title="15 Create GROUP_SPECIFY CHANNEL"></a>15 Create GROUP_SPECIFY CHANNEL<a class="article-anchor" href="#15-Create-GROUP-SPECIFY-CHANNEL" aria-hidden="true"></a></h2><p>Not yet open<br><figure class="highlight java"><table><tr><td class="code"><pre><span class="line">&#123;<span class="string">"action"</span> : <span class="string">"AEC_LIVE_CREATE_CHANNEL_GROUP_SPECIFY"</span>,<span class="string">"userId"</span> : <span class="string">"xxx"</span>,<span class="string">"groupId"</span> : <span class="string">"xxx"</span>,<span class="string">"channelId"</span> : <span class="string">"xxx"</span>,<span class="string">"extra(可选)"</span> : <span class="string">"xxxx"</span>,<span class="string">"specify"</span> : <span class="string">"xxxx"</span>&#125;</span><br></pre></td></tr></table></figure></p>
<h2 id="16-Create-LIVEPROXY-GLOBAL-PUBLIC-CHANNEL" class="article-heading"><a href="#16-Create-LIVEPROXY-GLOBAL-PUBLIC-CHANNEL" class="headerlink" title="16 Create LIVEPROXY_GLOBAL_PUBLIC CHANNEL"></a>16 Create LIVEPROXY_GLOBAL_PUBLIC CHANNEL<a class="article-anchor" href="#16-Create-LIVEPROXY-GLOBAL-PUBLIC-CHANNEL" aria-hidden="true"></a></h2><p>Create a pulling stream channel<br>{“action” : “AEC_LIVE_LIVEPROXY_CREATE_CHANNEL_GLOBAL_PUBLIC”,”roomId” : “xxx”,”channelId” : “xxx”,”conCurrentNumber” : “200”,”extra(可选)” : “xxxx”}</p>
<h2 id="17-Apply-for-streaming-forwarding" class="article-heading"><a href="#17-Apply-for-streaming-forwarding" class="headerlink" title="17 Apply for streaming forwarding"></a>17 Apply for streaming forwarding<a class="article-anchor" href="#17-Apply-for-streaming-forwarding" aria-hidden="true"></a></h2><pre><code class="java">{<span class="string">"action"</span> : <span class="string">"AEC_LIVE_LIVEPROXY_APPLY_UPLOAD_CHANNEL"</span>,<span class="string">"channelId"</span> : <span class="string">"xxx"</span>}
返回 {<span class="string">"status"</span>:<span class="string">"x"</span>,<span class="string">"data"</span>:{<span class="string">"conCurrentNumber"</span>:<span class="string">"xxx"</span>}}
</code></pre>
<h2 id="18-close-pulling-stream-channel" class="article-heading"><a href="#18-close-pulling-stream-channel" class="headerlink" title="18 close pulling stream channel"></a>18 close pulling stream channel<a class="article-anchor" href="#18-close-pulling-stream-channel" aria-hidden="true"></a></h2><pre><code class="java">{<span class="string">"action"</span> : <span class="string">"AEC_LIVE_LIVEPROXY_CLOSE_CHANNEL"</span>,<span class="string">"channelId"</span> : <span class="string">"xxx"</span>}
返回 {<span class="string">"status"</span>:<span class="string">"x"</span>}
</code></pre>
<h2 id="19-Delete-pulling-stream-channel" class="article-heading"><a href="#19-Delete-pulling-stream-channel" class="headerlink" title="19 Delete pulling stream channel"></a>19 Delete pulling stream channel<a class="article-anchor" href="#19-Delete-pulling-stream-channel" aria-hidden="true"></a></h2><pre><code class="java">{<span class="string">"action"</span> : <span class="string">"AEC_LIVE_LIVEPROXY_DELETE_CHANNEL"</span>,<span class="string">"channelId"</span> : <span class="string">"xxx"</span>}
返回 {<span class="string">"status"</span>:<span class="string">"x"</span>}
</code></pre>

              </div>
              <footer class="article-footer">
                <time class="article-footer-updated" datetime="2020-09-06T00:27:31.345Z" itemprop="dateModified">Last updated<script type="text/javascript">document.write("："+(new Date()).toISOString().slice(0,10))</script></time>
		<a href="aec-voip.html" class="article-footer-prev" title="voip events"><i class="fa fa-chevron-left"></i><span>Prev</span></a><a href="aec-other.html" class="article-footer-next" title="other events"><span>Next</span><i class="fa fa-chevron-right"></i></a>
              </footer>
            </div>
          </div>
          <aside id="article-toc" role="navigation">
            <div id="article-toc-inner">
              <strong class="sidebar-title">Contents</strong>
              <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#Stream-event-notification"><span class="toc-text">Stream event notification</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#1-Create-GLOBAL-PUBLIC-CHANNEL"><span class="toc-text">1 Create GLOBAL_PUBLIC CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#2-Create-LOGIN-PUBLIC-CHANNEL"><span class="toc-text">2 Create LOGIN_PUBLIC CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#3-Create-GROUP-PUBLIC-CHANNEL"><span class="toc-text">3 Create GROUP_PUBLIC CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#4-Apply-for-upload"><span class="toc-text">4 Apply for upload</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#5-Set-the-uploader"><span class="toc-text">5 Set the uploader</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#6-Cancel-the-upload-permission"><span class="toc-text">6 Cancel the upload permission</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#7-Uploader-disconnect-Leave-away"><span class="toc-text">7 Uploader disconnect (Leave away)</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#8-Uploader-is-uploading"><span class="toc-text">8 Uploader is uploading</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#9-Close-audio-and-video-stream"><span class="toc-text">9 Close audio and video stream</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#10-Delete-audio-and-video-streams"><span class="toc-text">10 Delete audio and video streams</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#11-The-user-starts-watching"><span class="toc-text">11 The user starts watching</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#12-It-be-called-once-a-minute-when-the-user-watch-the-video"><span class="toc-text">12 It be called once a minute when the user watch the video.</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#13-A-User-stop-watching"><span class="toc-text">13 A User stop watching</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#14-Create-LOGIN-SPECIFY-CHANNEL"><span class="toc-text">14 Create LOGIN_SPECIFY CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#15-Create-GROUP-SPECIFY-CHANNEL"><span class="toc-text">15 Create GROUP_SPECIFY CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#16-Create-LIVEPROXY-GLOBAL-PUBLIC-CHANNEL"><span class="toc-text">16 Create LIVEPROXY_GLOBAL_PUBLIC CHANNEL</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#17-Apply-for-streaming-forwarding"><span class="toc-text">17 Apply for streaming forwarding</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#18-close-pulling-stream-channel"><span class="toc-text">18 close pulling stream channel</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#19-Delete-pulling-stream-channel"><span class="toc-text">19 Delete pulling stream channel</span></a></li></ol></li></ol>
              <a href="#" id="article-toc-top">Back to Top</a>
            </div>
          </aside>
        </div>
      </article>
      <aside id="sidebar" role="navigation">
  <div class="inner">
    <strong class="sidebar-title">Getting Started</strong><a href="index.html" class="sidebar-link">Overview</a><strong class="sidebar-title">Android</strong><a href="android-1.html" class="sidebar-link">1.prerequisite</a><a href="android-2.html" class="sidebar-link">2.SDK intro</a><a href="android-3b.html" class="sidebar-link">3b.init(private)</a><a href="android-4.html" class="sidebar-link">4.im</a><a href="android-5.html" class="sidebar-link">5.group msg</a><a href="android-6.html" class="sidebar-link">6.chatroom msg</a><a href="android-7.html" class="sidebar-link">7.voip</a><a href="android-8.html" class="sidebar-link">8.meeting</a><a href="android-9.html" class="sidebar-link">9.live</a><a href="android-10.html" class="sidebar-link">10.other components</a><a href="android-11.html" class="sidebar-link">11.super room</a><a href="android-user-list.html" class="sidebar-link">online user list</a><a href="android-beauty-callback.html" class="sidebar-link">beauty</a><a href="android-errCode.html" class="sidebar-link">ErrorCode</a><strong class="sidebar-title">iOS</strong><a href="ios-1.html" class="sidebar-link">1.prerequisite</a><a href="ios-2.html" class="sidebar-link">2.SDK intro</a><a href="ios-3b.html" class="sidebar-link">3b.init(private)</a><a href="ios-4.html" class="sidebar-link">4.im</a><a href="ios-5.html" class="sidebar-link">5.group msg</a><a href="ios-6.html" class="sidebar-link">6.chatroom msg</a><a href="ios-7.html" class="sidebar-link">7.voip</a><a href="ios-8.html" class="sidebar-link">8.meeting</a><a href="ios-9.html" class="sidebar-link">9.live</a><a href="ios-10.html" class="sidebar-link">10.voip direct connection</a><strong class="sidebar-title">web</strong><a href="web-1.html" class="sidebar-link">1.prerequisite</a><a href="web-2.html" class="sidebar-link">2.SDK intro</a><a href="web-4.html" class="sidebar-link">4.im</a><a href="web-5.html" class="sidebar-link">5.group msg</a><a href="web-6.html" class="sidebar-link">6.chatroom msg</a><a href="web-7.html" class="sidebar-link">7.voip</a><a href="web-8.html" class="sidebar-link">8.meeting</a><a href="web-9.html" class="sidebar-link">9.live</a><a href="web-10.html" class="sidebar-link">10.private</a><strong class="sidebar-title">Win PC</strong><a href="win-1.html" class="sidebar-link">1.prerequisite</a><a href="win-2.html" class="sidebar-link">2.init</a><a href="win-3.html" class="sidebar-link">3.im</a><a href="win-4.html" class="sidebar-link">4.group msg</a><a href="win-5.html" class="sidebar-link">5.chatroom msg</a><a href="win-6.html" class="sidebar-link">6.voip</a><a href="win-7.html" class="sidebar-link">7.meeting</a><a href="win-8.html" class="sidebar-link">8.live</a><strong class="sidebar-title">Server API</strong><a href="aec-index.html" class="sidebar-link">Overview</a><a href="aec-group.html" class="sidebar-link">group events</a><a href="aec-chatroom.html" class="sidebar-link">chatroom events</a><a href="aec-voip.html" class="sidebar-link">voip events</a><a href="aec-channel.html" class="sidebar-link current">音视频流事件通知</a><a href="aec-other.html" class="sidebar-link">other events</a>
  </div>
</aside>
    </div>
  </div>
</div>

    <footer id="footer" class="wrapper">
  <div class="inner">
    <div id="footer-copyright">
      &copy; 2010-2020 <a href="https://starrtc.gitee.io/" target="_blank">starRTC</a><br>
    </div>
    <div id="footer-links">
      <a href="https://gitee.com/starrtc" class="footer-link" target="_blank"><i class="fa fa-github-alt"></i></a>
    </div>
  </div>
</footer>

  </div>
  <div id="mobile-nav-dimmer"></div>
  <nav id="mobile-nav">
  <div id="mobile-nav-inner">
    <ul id="mobile-nav-list">
      <a href="https://starrtc.gitee.io/" class="main-nav-link">Home</a><a href="https://blog.starRTC.com" class="main-nav-link">Blog</a><a href="https://github.com/starrtc/android-demo/issues" class="main-nav-link">Forum</a><a href="/en/docs/" class="mobile-nav-link">Docs</a><a href="/en/download/" class="mobile-nav-link">Download</a><a href="/en/contact/" class="mobile-nav-link">Contact</a>
      <li class="mobile-nav-item">
        <a href="https://github.com/starrtc" class="mobile-nav-link" rel="external" target="_blank">GitHub</a>
      </li>
    </ul>
    
      <strong class="mobile-nav-title">Getting Started</strong><a href="index.html" class="mobile-nav-link">Overview</a><strong class="mobile-nav-title">Android</strong><a href="android-1.html" class="mobile-nav-link">1.prerequisite</a><a href="android-2.html" class="mobile-nav-link">2.SDK intro</a><a href="android-3b.html" class="mobile-nav-link">3b.init(private)</a><a href="android-4.html" class="mobile-nav-link">4.im</a><a href="android-5.html" class="mobile-nav-link">5.group msg</a><a href="android-6.html" class="mobile-nav-link">6.chatroom msg</a><a href="android-7.html" class="mobile-nav-link">7.voip</a><a href="android-8.html" class="mobile-nav-link">8.meeting</a><a href="android-9.html" class="mobile-nav-link">9.live</a><a href="android-10.html" class="mobile-nav-link">10.other components</a><a href="android-11.html" class="mobile-nav-link">11.super room</a><a href="android-user-list.html" class="mobile-nav-link">online user list</a><a href="android-beauty-callback.html" class="mobile-nav-link">beauty</a><a href="android-errCode.html" class="mobile-nav-link">ErrorCode</a><strong class="mobile-nav-title">iOS</strong><a href="ios-1.html" class="mobile-nav-link">1.prerequisite</a><a href="ios-2.html" class="mobile-nav-link">2.SDK intro</a><a href="ios-3b.html" class="mobile-nav-link">3b.init(private)</a><a href="ios-4.html" class="mobile-nav-link">4.im</a><a href="ios-5.html" class="mobile-nav-link">5.group msg</a><a href="ios-6.html" class="mobile-nav-link">6.chatroom msg</a><a href="ios-7.html" class="mobile-nav-link">7.voip</a><a href="ios-8.html" class="mobile-nav-link">8.meeting</a><a href="ios-9.html" class="mobile-nav-link">9.live</a><a href="ios-10.html" class="mobile-nav-link">10.voip direct connection</a><strong class="mobile-nav-title">web</strong><a href="web-1.html" class="mobile-nav-link">1.prerequisite</a><a href="web-2.html" class="mobile-nav-link">2.SDK intro</a><a href="web-4.html" class="mobile-nav-link">4.im</a><a href="web-5.html" class="mobile-nav-link">5.group msg</a><a href="web-6.html" class="mobile-nav-link">6.chatroom msg</a><a href="web-7.html" class="mobile-nav-link">7.voip</a><a href="web-8.html" class="mobile-nav-link">8.meeting</a><a href="web-9.html" class="mobile-nav-link">9.live</a><a href="web-10.html" class="mobile-nav-link">10.private</a><strong class="mobile-nav-title">Win PC</strong><a href="win-1.html" class="mobile-nav-link">1.prerequisite</a><a href="win-2.html" class="mobile-nav-link">2.init</a><a href="win-3.html" class="mobile-nav-link">3.im</a><a href="win-4.html" class="mobile-nav-link">4.group msg</a><a href="win-5.html" class="mobile-nav-link">5.chatroom msg</a><a href="win-6.html" class="mobile-nav-link">6.voip</a><a href="win-7.html" class="mobile-nav-link">7.meeting</a><a href="win-8.html" class="mobile-nav-link">8.live</a><strong class="mobile-nav-title">Server API</strong><a href="aec-index.html" class="mobile-nav-link">Overview</a><a href="aec-group.html" class="mobile-nav-link">group events</a><a href="aec-chatroom.html" class="mobile-nav-link">chatroom events</a><a href="aec-voip.html" class="mobile-nav-link">voip events</a><a href="aec-channel.html" class="mobile-nav-link current">音视频流事件通知</a><a href="aec-other.html" class="mobile-nav-link">other events</a>
    
  </div>
  <div id="mobile-lang-select-wrap">
    <span id="mobile-lang-select-label"><i class="fa fa-globe"></i><span>English</span></span>
    <select id="mobile-lang-select" data-canonical="docs/aec-channel.html">
      
        <option value="en" selected>English</option>
      
        <option value="zh-cn">简体中文</option>
      
    </select>
  </div>
</nav>
  <!-- Scripts -->
<!-- build:js build/js/main.js -->
<script src="/js/lang_select.js"></script>
<script src="/js/toc.js"></script>
<script src="/js/mobile_nav.js"></script>
<!-- endbuild -->
<!-- Algolia -->

<script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.js"></script>
<script type="text/javascript">
document.getElementById('search-input-wrap').classList.add('on');
docsearch({
  apiKey: 'c3d5d4c995b5e0c2ffb5623900279a66',
  indexName: 'hexo',
  inputSelector: '#search-input'
});
</script>


</body>
</html>